/*
 * Archivo de funciones JavaScript generico para toda la aplicacion
 */

$(document).ready(function($) {
	$( "#confirmar-desasignar-paciente" ).dialog({
		resizable: false,
		autoOpen:false,
		width:400,
		modal: true,
		title: "Desasignar Nutricionista",
		buttons: {
			"Aceptar": function() {
				window.location  = '/paciente/desasignarNutricionista';
			},
			"Cancelar": function() {
				$( this ).dialog( "close" );
			}
		}
	});
});

function submittearPlanPaso1() {

	var selectedOnes = new Array();

	$('input:checked').each(function() {
		selectedOnes.push(this.value)
	});

	$('#tiposPlan').val(JSON.stringify(selectedOnes));

}

// Perfil´s functions

function habilitarSugerencias() {
	var selected = $("#object_habilitarSugerencias").val();
	
	if (selected == "Si") {
		$("#frecuencia-div").show();
		$("#email-sugerencias-div").show();
	}else{
		$("#object_frecuenciaSugerencias option[value='']").attr('selected','selected');
		$("#frecuencia-div").hide();
		$("#email-sugerencias-div").hide();
		
	}
}

//Te dice si el argumento aDate (que es un string en formato dd/mm/yyyy) es mayor que la fecha actual 
function dateGreaterThanToday(aDate){
	return new Date($.datepicker.formatDate('mm/dd/yy', new Date()))  < new Date($.datepicker.formatDate('dd/mm/yy', new Date(new Date(aDate))));
}

function desasignarNutricionista(){
	$( "#confirmar-desasignar-paciente" ).dialog("open");
}	

function mostrarMensajeNutricionista(){
	
	var botonDesasignar = $("#desasignar_nutricionista_txt_div_id");
	
	if (botonDesasignar.css("display") == "none") {
		botonDesasignar.show("slide", {direction: 'left'});
	}
}

// muestra un cuadro de diálogo modal para eliminar el registro en cuestión
// requiere que haya una div creada con id confirma-borrar así: <div id="confirma-borrar" style="display:none;"><p><span class="ui-icon ui-icon-alert"></span>¿Confirma que desea eliminar?</p></div>
// y que el botón borrar tenga el evento onClick="javascript:borrar()"
// IMPORTANTE: el form del delete está harcodeado para ser el segundo (posición 1 del array document.forms)
function borrar(){
	$( "#confirma-borrar" ).dialog({
		resizable: false,
		autoOpen: false,
		width: 400,
		modal: true,
		title: "Borrar",
		buttons: {
			"Aceptar": function() {
				$('#deleteForm').submit();
			},
			"Cancelar": function() {
				$( this ).dialog( "close" );
			}
		}
	});
	
	$( "#confirma-borrar" ).dialog( "open" );
}

function checkearTipoPlan(tipoPlan) {
	
	$("#" + tipoPlan).prop("checked", ! $("#" + tipoPlan).prop("checked"));
	$("#tipoPlan_" + tipoPlan).toggleClass("tipoPlanSelected");
	
}

function mostrarMensajeAtencion(mensaje){
	$( "#texto-atencion-div" ).text(mensaje); //ej.: <div id="atencion-div" style="display:none;"><p id="texto-atencion-div" ></p></div>
	$("#atencion-div").dialog({
		resizable: false,
		autoOpen:false,
		width:'auto',
		modal: true,
		title: "Atención",
		buttons: {
			"Aceptar": function() {
				$( "#atencion-div" ).dialog( "close" );
			}
		}
	});
	$( "#atencion-div" ).dialog( "open" );
	return;
}

function validarCheckboxesAsignarPlatos(){
	
	$('.checkbox-platos').each(function(){
		if($(this).attr("checked") != "checked"){
			mostrarMensajeAtencion("Seleccione uno o más platos");
			return;
		}
	});

	$('.checkbox-pacientes').each(function(){
		if($(this).attr("checked") != "checked"){
			mostrarMensajeAtencion("Seleccione uno o más pacientes");
			return;
		}
	});
	
	asignarPlatos();
}

function asignarPlatoAPacientes(idPlato){
	var platosPacientesJSON = '{"platos": [';  		

	platosPacientesJSON += '{"idPlato": "' + idPlato + '"},'
	
	//quito la última coma (no es necesaria)
	platosPacientesJSON = platosPacientesJSON.substring(0,platosPacientesJSON.length-1);
	
	platosPacientesJSON += '], "pacientes":[';
	
	checkboxesPacientes = $('input:checkbox:checked.checkbox-pacientes');
	
	$('input:checkbox:checked.checkbox-pacientes').each( function(){
		platosPacientesJSON += '{"idPaciente": "' + $(this).val() + '"},'
	});

	if(checkboxesPacientes.size() > 0){
		//quito la última coma (no es necesaria)
		platosPacientesJSON = platosPacientesJSON.substring(0,platosPacientesJSON.length-1);
	}

	//agrego el cierre del json
	platosPacientesJSON += ']}';

	$.ajax({
	        type: "POST",
	        url: "/nutri/platos/asignar",
	        data: platosPacientesJSON,
	        dataType: "json",
	        contentType: "application/json"
		}).done(function(resultado){
	        	if(resultado.result == "ok")
	        		window.location="/nutri/platos";
	        	else{
	        		alert("No se pudo crear el plato. Intente de nuevo más tarde...");
	        		window.location="/nutri";
	        	}
	      	}
	      );
	$("#pacientes-div").dialog( "close" );
	setTimeout(function() {window.location = "/nutri/platos";} , 500);
	
}

function mostrarPacientes(idPlato){
	// Ojo esta variable global
	currentIdPlato = idPlato;
	
	var idPlatoJSON = '{"platoId": "' + currentIdPlato + '"}'; 		

	$.ajax({
		url: "/platos/getPacientesJSON",
		data: "platoId=" + currentIdPlato
	}).done(function(resultado) {
		$("#lista-pacientes").empty();
		
		if ($.isEmptyObject(resultado)) {
			$("#pacientes-div").html("No tiene pacientes asignados.");
		}
		
		// se itera el resultado json y se genera cada alimento
		$.each($.parseJSON(resultado), function(i, val) {
			var elemento;
			if(this.pacienteChecked == true){
				elemento = "<li id=\"" + this.pacienteId + '\"><input class="checkbox-pacientes checked_checkbox" type="checkbox" value=\"' + this.pacienteId + '\"/>&nbsp;&nbsp;' + this.pacienteNombre + '</li>'; 
			}else{
				elemento = "<li id=\"" + this.pacienteId + '\"><input class="checkbox-pacientes" type="checkbox" value=\"' + this.pacienteId + '\"/>&nbsp;&nbsp;' + this.pacienteNombre + '</li>'; 
			}
			console.log(elemento);
			$("#lista-pacientes").append(elemento);
		});
	
	$("#pacientes-div").dialog( "open" );

	$(".checked_checkbox").attr("checked", "checked");
	});
}

function controlarVistaInputPacientes(checkbox){
	if($(checkbox).attr("checked") == "checked"){
		$("#lista-pacientes-input").show();
		return;
	}
	
	$('.checkbox-paciente').each(function(){
		$("#lista-pacientes-input").show();
		if($(this).attr("checked") == "checked"){
			$("#lista-pacientes-input").show();
			return;
		}
	});
	
	$("#lista-pacientes-input").hide();
}

function eliminarPlato(idPlato){
	
	var platoJSON = '{"idPlato": "' + idPlato + '"}';
		
	$.ajax({
	        type: "POST",
	        url: "/platos/eliminarPlato",
	        data: platoJSON,
	        dataType: "json",
	        contentType: "application/json"
		}).done(function(resultado){
	        	if(resultado.result == "establecimiento_alimenticio"){
	        		window.location="/resto/platos";
	        	}else {
	        		if(resultado.result == "nutri"){
	        			window.location="/nutri/platos";
	        		}else{
	    		    	alert("No se pudo borrar el plato. Por favor, intente de nuevo más tarde...");
	        		}
	        	}
	      	}
	      );
}